//package com.zx.fitler;
//
//import org.springframework.cloud.gateway.filter.GatewayFilter;
//import org.springframework.cloud.gateway.filter.GatewayFilterChain;
//import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
//import org.springframework.cloud.gateway.filter.factory.PrefixPathGatewayFilterFactory;
//import org.springframework.stereotype.Component;
//import org.springframework.web.server.ServerWebExchange;
//
//import java.util.Arrays;
//import java.util.List;
//
//
///**
// * 自定义局部过滤器
// *
// * @author jack.wu
// * @version 1.0
// * @date 2020-03-09
// */
////@Component
//public class LogGatewayFilterFactory extends AbstractGatewayFilterFactory<LogGatewayFilterFactory.Config> {
//
//    public static final String PREFIX_KEY = "log";
//
//    public LogGatewayFilterFactory() {
//        super(LogGatewayFilterFactory.Config.class);
//    }
//
//    /**
//     * 读取配置文件内容并赋值
//     */
//    @Override
//    public List<String> shortcutFieldOrder() {
//        return Arrays.asList("consoleLog", "cacheLog");
//    }
//
//    /**
//     * 过滤器逻辑
//     */
//    @Override
//    public GatewayFilter apply(PrefixPathGatewayFilterFactory.Config config) {
//        return new GatewayFilter() {
//            @Override
//            public reactor.core.publisher.Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
//                // 处理类容
//                return chain.filter(exchange);
//            }
//        };
//    }
//
//    public static class Config {
//        private boolean consoleLog;
//        private boolean cacheLog;
//
//        public boolean isConsoleLog() {
//            return consoleLog;
//        }
//
//        public void setConsoleLog(boolean consoleLog) {
//            this.consoleLog = consoleLog;
//        }
//
//        public boolean isCacheLog() {
//            return cacheLog;
//        }
//
//        public void setCacheLog(boolean cacheLog) {
//            this.cacheLog = cacheLog;
//        }
//    }
//}
